﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Pf.BusinessLogic.CharacterCreation.DetermineAbilityScores
{
    /// <summary>
    /// Status of the DetermineAbilityScores program flow
    /// </summary>
    public enum DetermineAbilityScoresStatus
    {
        Initialized = 0,        
        CanChooseRandomizedTypeAndPreAssigned,        
        CanDetermineDicePoolSizeAndDistribution,
        CanDetermineAmountOfAbilityScorePoints,
        CanBuyAbilityScores,        
        CanAssignScores,
        CanCommitOrRollback     
    }

    /// <summary>
    /// Base method type for determining ability scores
    /// </summary>
    public enum MethodTypeEnum
    {
        Unknown = 0,
        Randomized,
        PointBuy,       
        Manual
    }

    /// <summary>
    /// Available randomized methods for determining ability scores
    /// </summary>
    public enum RandomizedTypeEnum
    {
        Unknown = 0,
        Standard,
        Classic,
        Heroic,
        DicePool
    }

    /// <summary>
    /// Ability score points for point-buy method
    /// </summary>
    public enum AbilityScorePointsEnum
    {
        Unknown = 0,
        LowFantasy=10,
        StandardFantasy=15,
        HighFantasy=20,
        EpicFantasy=25
    }

    public enum PoolSizeEnum
    {
        Standard = 24,
        High = 28
    }
}
